package smoothing;

public abstract interface Smoothing {
	
	/**
	 * Calculates MLE for given word, using the implemented
	 * smoothing method
	 * @param word word to check
	 * @return MLE for given word according to implemented smoothing
	 */
	public abstract double mleModel(String word);
	
	/**
	 * Checks if the sum of probabilities for all events (seen and unseen)
	 * is 1
	 * @return True if sum is 1, False if not
	 */
	public abstract boolean debug();
	
	/**
	 * Calculates the expected frequency for a given frequency, using the implemented
	 * smoothing method
	 * @param frequency
	 * @return the expected frequency for a given frequency
	 */
	public double expectedFrequency(int frequency);
}
